package 笔试.广联达笔试.种草;


//作者：sky游荡
//链接：https://www.nowcoder.com/discuss/462506?type=post&order=time&pos=&page=1&channel=666&source_id=search_post
//来源：牛客网
//
//第一题：
//有一片地，种着m个草，操的高度是个一维数组，有n个魔法药剂，每个药剂可以使得草涨x米，用完魔法药剂，最低的草最高是多少？
//输入 m,n,x m表示数据多少，n表示有多少个魔法药剂，x表示能涨多高，m<=100000;
//5,3,1
//1,2,3,4,5
//5个数据，有3个药剂，每个药剂能使得草涨1米，
//输出 3
//1米的长两米，2米的长一米，最低是3米。

//这题不难用个优先队列就出来了，优先队列可以按优先级顺序排序，默认升序，可以自定义比较器compareTo
import java.util.PriorityQueue;
import java.util.Scanner;
public class Main
{
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextLine())
        {
            int n = sc.nextInt();
            int m = sc.nextInt();
            int x = sc.nextInt();
            //直接用优先队列接收一行整数
            PriorityQueue<Integer> priorityQueue = new PriorityQueue<>();
            for (int i = 0; i < n; i++)
            {
                priorityQueue.offer(sc.nextInt());
            }
            while (m-->0)
            {
                priorityQueue.offer(priorityQueue.poll()+x);
            }
            System.out.print(priorityQueue.poll()+" ");


        }
    }
}
